import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:geomancy/styles/index.dart';
import 'package:geomancy/tools/constant.dart';
import 'package:geomancy/widgets/common_header.dart';
import 'package:geomancy/widgets/common_shadow_text.dart';
import 'package:geomancy/widgets/common_text.dart';
import 'package:geomancy/widgets/common_title.dart';

class NounsListPage extends StatefulWidget {
  const NounsListPage({super.key});

  @override
  State<NounsListPage> createState() => _NounsListPageState();
}

class _NounsListPageState extends State<NounsListPage> {

  Widget rowItem(String label, String content) {
    return Container(
      margin: EdgeInsets.only(bottom: 5.w),
      child: Row(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          CommonText(txt: label),
          Expanded(child: CommonText(txt: content))
        ],
      ),
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: CommonHeader.appBar(context: context),
      backgroundColor: ColorStyle.pageDefaultColor,
      body: ListView(
        padding: EdgeInsets.fromLTRB(Constant.PAGEPADDING.w, 20.w, Constant.PAGEPADDING.w, 40.w),
        children: [
          ///黄历术语
          Container(
            margin: EdgeInsets.only(bottom: 40.w),
            child: Column(
              children: [
                const CommonTitleWidget(txt: '黄历术语'),
                Container(
                  width: double.infinity,
                  margin: EdgeInsets.only(top: 20.w),
                  padding: EdgeInsets.symmetric(vertical: 45.w, horizontal: 40.w),
                  decoration: BoxDecoration(
                      color: ColorStyle.themeLightColor,
                      border: Border.all(width: 5.w, color: ColorStyle.borderColor),
                      borderRadius: BorderRadius.all(Radius.circular(60.w))
                  ),
                  child: Column(
                    crossAxisAlignment: CrossAxisAlignment.start,
                    children: [
                      CommonShadowTextWidget(txt: '今日吉时', fontSize: 30.sp),
                      Container(
                        width: double.infinity,
                        margin: EdgeInsets.only(top: 20.w),
                        child: const CommonText(txt: '吉时：吉利之时辰。'),
                      ),
                      Container(
                        width: double.infinity,
                        margin: EdgeInsets.only(bottom: 30.w),
                        padding: EdgeInsets.symmetric(vertical: 20.w),
                        decoration: BoxDecoration(
                          border: Border(
                            bottom: BorderSide(width: 1.w, color: ColorStyle.borderColor)
                          )
                        ),
                        child: const CommonText(txt: '凶时：凶兆之时辰。'),
                      ),
                      CommonShadowTextWidget(txt: '今日宜忌', fontSize: 30.sp),
                      Container(
                        margin: EdgeInsets.only(top: 20.w),
                        child: const CommonText(txt: '宜：今日适合做的事情。'),
                      ),
                      Container(
                        margin: EdgeInsets.only(top: 20.w),
                        child: const CommonText(txt: '忌：今日不宜做的事情。'),
                      ),
                      Container(
                        margin: EdgeInsets.only(top: 20.w),
                        child: const CommonText(txt: '吉神宜趋：宜接近，会有吉利的神明。'),
                      ),
                      Container(
                        margin: EdgeInsets.only(top: 20.w),
                        child: const CommonText(txt: '凶神宜忌：应远离，会有冲犯不好的事情发生。'),
                      ),
                      Container(
                        width: double.infinity,
                        margin: EdgeInsets.only(bottom: 30.w),
                        padding: EdgeInsets.symmetric(vertical: 20.w),
                        decoration: BoxDecoration(
                            border: Border(
                                bottom: BorderSide(width: 1.w, color: ColorStyle.borderColor)
                            )
                        ),
                        child: const CommonText(txt: '彭祖百忌：每日时辰应忌讳之事。'),
                      ),
                      CommonShadowTextWidget(txt: '今日诸神', fontSize: 30.sp),
                      Container(
                        margin: EdgeInsets.only(top: 20.w),
                        child: const CommonText(txt: '下元：今日之卦象。'),
                      ),
                      Container(
                        margin: EdgeInsets.only(top: 20.w),
                        child: const CommonText(txt: '当冲：本指处在首要位置，比喻最先受到攻击或遭遇灾害。'),
                      ),
                      Container(
                        margin: EdgeInsets.only(top: 20.w),
                        child: const CommonText(txt: '值年太岁：今年值年之太岁。'),
                      ),
                      Container(
                        margin: EdgeInsets.only(top: 20.w),
                        child: const CommonText(txt: '岁冲：今年与太岁冲犯之岁次生肖。'),
                      ),
                      Container(
                        margin: EdgeInsets.only(top: 20.w),
                        child: const CommonText(txt: '掌日太岁：今日掌日之太岁。'),
                      ),
                      Container(
                        width: double.infinity,
                        margin: EdgeInsets.only(bottom: 30.w),
                        padding: EdgeInsets.symmetric(vertical: 20.w),
                        decoration: BoxDecoration(
                            border: Border(
                                bottom: BorderSide(width: 1.w, color: ColorStyle.borderColor)
                            )
                        ),
                        child: const CommonText(txt: '岁次：农民历之日期。'),
                      ),
                      CommonShadowTextWidget(txt: '值神胎神', fontSize: 30.sp),
                      Container(
                        margin: EdgeInsets.only(top: 20.w),
                        child: const CommonText(txt: '胎神：是专管胎儿的神灵，它通常存在于孕妇的周围。人们对胎神既敬又畏。因为胎神有保佑胎儿和伤损胎儿的双重性质。当胎神有益于胎儿时，人们自然敬它；当胎神有害于胎儿时，人们又畏惧它。这时，人们不管它叫胎神，而管它叫胎煞。神可敬，煞不可犯。'),
                      ),
                      Container(
                        width: double.infinity,
                        margin: EdgeInsets.only(bottom: 30.w),
                        padding: EdgeInsets.symmetric(vertical: 20.w),
                        decoration: BoxDecoration(
                            border: Border(
                                bottom: BorderSide(width: 1.w, color: ColorStyle.borderColor)
                            )
                        ),
                        child: const CommonText(txt: '值神：值神即当值神煞，诸神煞各自按照自身的运行规律轮流“值日”，处理人间事务。这样，一年之内，每日都有若干不同的神煞当值，而该日行事之吉凶宜忌，即由诸当值神煞相互作用，或冲突或合和，或牵制或平衡，最后综合决定。'),
                      ),
                      CommonShadowTextWidget(txt: '五行类', fontSize: 30.sp),
                      Container(
                        width: double.infinity,
                        margin: EdgeInsets.only(bottom: 30.w),
                        padding: EdgeInsets.symmetric(vertical: 20.w),
                        decoration: BoxDecoration(
                            border: Border(
                                bottom: BorderSide(width: 1.w, color: ColorStyle.borderColor)
                            )
                        ),
                        child: const CommonText(txt: '五行：即金、木、水、火、土。五行是构成宇宙之最基本元素，也代表宇宙万物五种变化和性格，四季的演变，日月的运行，亦以五行为数。金，中心凝聚，有收敛、刚锐、砍伐的力量。木，四方发散，有生长、蓬勃、向外的力量。水，向下流散，有流动、自由、向下的力量。火，向上扩升，有光热、膨胀、向上的力量。土，左右移动，有厚重、杂陈、向内的力量。'),
                      ),
                      CommonShadowTextWidget(txt: '今日冲煞', fontSize: 30.sp),
                      Container(
                        margin: EdgeInsets.only(top: 20.w),
                        child: const CommonText(txt: '冲：在黄历律法里，五行相生相克的观念，犹如自然界的协调，有一定的规律，当两者发生冲、煞的情况时，基于趋吉避凶的心态，人们往往也会听从古法的建议，明哲保身。'),
                      ),
                      Container(
                        margin: EdgeInsets.only(top: 20.w),
                        child: const CommonText(txt: '煞：每日冲煞年岁方位中，破土、修造、移徙、交易、入殓、安葬、启攒等诸事不宜，冲煞的生肖年岁，应该尽量避讳，并且注意冲煞方位，避免朝该方面行事，以免遭惹无妄之灾。而冲犯年岁者，上列诸事亦应回避或不宜为之，民间传统信仰，也习惯以「安太岁」的程序，祈求年度诸事的顺遂。'),
                      ),
                    ],
                  ),
                )
              ],
            ),
          ),
          ///祭祀类
          Container(
            margin: EdgeInsets.only(bottom: 40.w),
            child: Column(
              children: [
                const CommonTitleWidget(txt: '祭祀类'),
                Container(
                  width: double.infinity,
                  margin: EdgeInsets.only(top: 20.w),
                  padding: EdgeInsets.symmetric(vertical: 45.w, horizontal: 40.w),
                  decoration: BoxDecoration(
                      color: ColorStyle.themeLightColor,
                      border: Border.all(width: 5.w, color: ColorStyle.borderColor),
                      borderRadius: BorderRadius.all(Radius.circular(60.w))
                  ),
                  child: Column(
                    children: [
                      rowItem('酬神：', '还愿，答谢神恩。'),
                      rowItem('开光：', '神佛像塑成后、供奉上位之事。'),
                      rowItem('祈福：', '去寺庙上香还愿，祈求神明降福或设醮还愿之事。'),
                      rowItem('造庙：', '建造寺，庙，宫，观，堂。'),
                      rowItem('沐浴：', '祈福设醮或还愿时清洁身体之谓。'),
                      rowItem('求嗣：', '向神明祈求后嗣(子孙)之意。'),
                      rowItem('塑绘：', '寺庙之绘尽或雕刻神像、画雕人像等。'),
                      rowItem('齐醮：', '设醮建立道场祈拜、求平安等事。'),
                      rowItem('斋醮：', '庙宇建醮前需举行的斋戒仪式。'),
                      rowItem('焚香：', '将一些带有特殊气味和芳香气味的植物放在火焰中烟熏火燎，如今可看成是烧香。'),
                      rowItem('祀灶：', '祭拜灶神。'),
                      rowItem('出火：', '谓移动神位，「火」指「香火」而言。'),
                      rowItem('祭祀：', '祠堂之祭祀、拜祭祖先或庙寺的祭拜、拜神明等事。'),
                    ],
                  )
                )
              ],
            ),
          ),
          ///生活类
          Container(
            margin: EdgeInsets.only(bottom: 40.w),
            child: Column(
              children: [
                const CommonTitleWidget(txt: '生活类'),
                Container(
                    width: double.infinity,
                    margin: EdgeInsets.only(top: 20.w),
                    padding: EdgeInsets.symmetric(vertical: 45.w, horizontal: 40.w),
                    decoration: BoxDecoration(
                        color: ColorStyle.themeLightColor,
                        border: Border.all(width: 5.w, color: ColorStyle.borderColor),
                        borderRadius: BorderRadius.all(Radius.circular(60.w))
                    ),
                    child: Column(
                      children: [
                        rowItem('教牛马：', '训练牛马之工作。'),
                        rowItem('纳畜：', '牧养、收买入家畜、家禽、宠物等。'),
                        rowItem('畋猎：', '打猎或捕捉禽兽。'),
                        rowItem('移徙：', '指搬家，迁移入住所(含非新宅)之意。'),
                        rowItem('分居：', '大家庭分家、各自另起炉灶之意。'),
                        rowItem('整手足甲：', '初生婴儿第一次修剪手足甲。'),
                        rowItem('赴任：', '走马上任。当官的好日子。'),
                        rowItem('出行：', '外出旅行、观光游览。'),
                        rowItem('捕捉：', '断蚁，扑灭家中或农作物之害虫生物。'),
                        rowItem('会友：', '聚集朋友；有朋相会。'),
                        rowItem('求医疗病：', '初生婴儿第一次剃胎发，或出家之落发。'),
                        rowItem('剃头：', '求医治疗慢性痼疾或动手术。'),
                        rowItem('栽种：', '栽种植物，或接枝。'),
                      ],
                    )
                )
              ],
            ),
          ),
          ///营建类
          Container(
            margin: EdgeInsets.only(bottom: 40.w),
            child: Column(
              children: [
                const CommonTitleWidget(txt: '营建类'),
                Container(
                    width: double.infinity,
                    margin: EdgeInsets.only(top: 20.w),
                    padding: EdgeInsets.symmetric(vertical: 45.w, horizontal: 40.w),
                    decoration: BoxDecoration(
                        color: ColorStyle.themeLightColor,
                        border: Border.all(width: 5.w, color: ColorStyle.borderColor),
                        borderRadius: BorderRadius.all(Radius.circular(60.w))
                    ),
                    child: Column(
                      children: [
                        rowItem('破屋坏垣：', '拆除房屋或围墙。'),
                        rowItem('伐木做梁：', '砍伐树木作屋梁。'),
                        rowItem('造仓库：', '建筑仓库或修理仓库。'),
                        rowItem('入宅：', '即迁入新宅、所谓“新居落成典礼”也。新居建成，或是旧家搬到新家去了，一个典礼。'),
                        rowItem('穿屏扇架：', '制作门扇、屏障等工作。'),
                        rowItem('安床：', '安置睡床卧铺之意。'),
                        rowItem('谢土：', '建筑物完工后所举行的祭祀。'),
                        rowItem('补垣：', '塞穴、填坑、覆井；塞穴指堵塞洞穴或蚁穴。'),
                        rowItem('平治道涂：', '铺平道路等工事。'),
                        rowItem('作陂放水：', '建筑蓄水池、将水灌入蓄水池。'),
                        rowItem('作灶：', '安修厨灶、厨炉移位。'),
                        rowItem('解除：', '扫舍，指冲洗宅舍、解除灾厄。'),
                        rowItem('安门：', '房屋装设门户等工事。'),
                        rowItem('竖柱：', '架马俗称起工架马，指建筑场所之鹰架。'),
                        rowItem('开井开池：', '开渠、筑阴沟、开鱼池；开凿水井、池塘。'),
                        rowItem('修造：', '阳宅的修造与修理。'),
                        rowItem('起基动土：', '建筑时、第一次动起锄头挖土。这个是除了基础以外的动土。'),
                        rowItem('开柱眼：', '指作柱木之事。'),
                        rowItem('安香：', '安土地公或祖先之神位。'),
                        rowItem('盖屋合脊：', '装盖房屋的屋顶等工作。'),
                        rowItem('塞穴：', '堵塞洞穴或蚁穴等。'),
                        rowItem('上梁：', '装上建筑物屋顶的大梁，西式建筑指屋顶之灌浆(预拌混凝土)。'),
                        rowItem('拆卸：', '就是拆掉建筑物。也就是我们常说的扒房子。'),
                        rowItem('开厕：', '建造厕所。'),
                      ],
                    )
                )
              ],
            ),
          ),
          ///婚嫁类
          Container(
            margin: EdgeInsets.only(bottom: 40.w),
            child: Column(
              children: [
                const CommonTitleWidget(txt: '婚嫁类'),
                Container(
                    width: double.infinity,
                    margin: EdgeInsets.only(top: 20.w),
                    padding: EdgeInsets.symmetric(vertical: 45.w, horizontal: 40.w),
                    decoration: BoxDecoration(
                        color: ColorStyle.themeLightColor,
                        border: Border.all(width: 5.w, color: ColorStyle.borderColor),
                        borderRadius: BorderRadius.all(Radius.circular(60.w))
                    ),
                    child: Column(
                      children: [
                        rowItem('进人口：', '指收纳养子女，或认干儿子、干女儿。'),
                        rowItem('合帐：', '制作蚊帐之事，今应指安置窗帘。'),
                        rowItem('纳婿：', '指男方入赘于女方为婿之意。同嫁娶。'),
                        rowItem('裁衣：', '临近婚期前一个月，男方备酒、蓝布和金银钗环交给媒人送到女方家。'),
                        rowItem('归宁：', '新婚后，新娘与新郎第一次回娘家。'),
                        rowItem('安床：', '安置睡床卧铺，一为新婚安置新床、二为事事不顺重新安新床。'),
                        rowItem('纳采：', '同结婚姻，受授聘金，也就是下聘礼。俗称：订婚、文定、过订、完聘、大定。'),
                        rowItem('订盟：', '订婚仪式的一种，俗称小聘(订)。也是订亲。'),
                        rowItem('问名：', '男女双方各取年庚，供于神案，经数日无事即可合婚。'),
                        rowItem('嫁娶：', '男娶女嫁，举行结婚大典，迎亲之日。'),
                        rowItem('冠笄：', '「冠」指男「笄」指女，举行男女成人的仪式，称之为冠笄。成人后，代表可以结婚了。'),
                      ],
                    )
                )
              ],
            ),
          ),
          ///丧葬类
          Container(
            margin: EdgeInsets.only(bottom: 40.w),
            child: Column(
              children: [
                const CommonTitleWidget(txt: '丧葬类'),
                Container(
                    width: double.infinity,
                    margin: EdgeInsets.only(top: 20.w),
                    padding: EdgeInsets.symmetric(vertical: 45.w, horizontal: 40.w),
                    decoration: BoxDecoration(
                        color: ColorStyle.themeLightColor,
                        border: Border.all(width: 5.w, color: ColorStyle.borderColor),
                        borderRadius: BorderRadius.all(Radius.circular(60.w))
                    ),
                    child: Column(
                      children: [
                        rowItem('成服：', '穿上丧服。'),
                        rowItem('移柩：', '将棺木移出屋外之事。'),
                        rowItem('开生坟：', '人未死，先找地作坟墓。'),
                        rowItem('入殓：', '将尸体放入棺材之意。'),
                        rowItem('破土：', '仅指埋葬用的破土、与一般建筑房屋的"动土"不同，"破土"属阴宅，"动土"属阳宅也。'),
                        rowItem('合寿木：', '制作棺材。'),
                        rowItem('安葬：', '葬礼，举行埋葬仪式等。'),
                        rowItem('启攒：', '指坟墓「洗骨」之事。俗谓「拾金」也。'),
                        rowItem('立碑：', '竖立墓碑或纪念碑。'),
                        rowItem('除服：', '脱下丧服。'),
                        rowItem('修墓：', '也就是修理坟墓。需要注意的是，修墓与建坟是不一样的。修理坟墓就是跟修屋一样，年深日久或是坟地出了问题才修理一下。就是这种。'),
                        rowItem('普渡：', '祭祀超渡阴界的孤魂野鬼。'),
                      ],
                    )
                )
              ],
            ),
          ),
          ///工商类
          Container(
            margin: EdgeInsets.only(bottom: 40.w),
            child: Column(
              children: [
                const CommonTitleWidget(txt: '工商类'),
                Container(
                    width: double.infinity,
                    margin: EdgeInsets.only(top: 20.w),
                    padding: EdgeInsets.symmetric(vertical: 45.w, horizontal: 40.w),
                    decoration: BoxDecoration(
                        color: ColorStyle.themeLightColor,
                        border: Border.all(width: 5.w, color: ColorStyle.borderColor),
                        borderRadius: BorderRadius.all(Radius.circular(60.w))
                    ),
                    child: Column(
                      children: [
                        rowItem('挂匾：', '指悬挂招牌或各种匾额。包括公司的，也包括家里古时府上的牌匾。'),
                        rowItem('纳财：', '指已属于自己的财富基础上购置产业、进货、收帐、收租、讨债、贷款、五谷入仓等。'),
                        rowItem('酝酿：', '酿酒、造酱料等事。'),
                        rowItem('经络：', '安机器、织布、收蚕、安纺车、机器。'),
                        rowItem('开仓：', '出货财，商贾之出货、销货、放债。'),
                        rowItem('开市：', '商品行号开张做生意。包括年头初开始营业或开工等事或新设店铺商行或新厂开幕等事。'),
                        rowItem('安机：', '安机器、安纺车。'),
                        rowItem('立券交易：', '订立各种契约互相买卖之事。这差不多相当于现在的签合同。'),
                        rowItem('造车器：', '造舟船；制造水陆交通工具(适新车交车)。'),
                        rowItem('求财：', '相对于纳财来说求财是指未属于自己的财富而祈求通过投资等活动赚取博得财富。'),
                      ],
                    )
                )
              ],
            ),
          ),
        ],
      ),
    );
  }
}
